Fly-height interaction simulation

ABSTRACT

In an approach for providing simulation results of an interaction between a transducer head and a magnetic medium, a computer identifies a first raster scan of a sample via a scanning probe microscope. The computer generates a topography image based on the first raster scan of the sample. The computer identifies one or more reference features within the created topography image. The computer calculates an average height based on the one or more reference features. The computer determines a lift distance associated with a probe of the scanning probe microscope. The computer defines a uniform plane based on the calculated average height and the determined lift distance. The computer performs a second raster scan of the sample based on the defined uniform plane. The computer generates a fly-height image based on the second raster scan. The computer provides simulation results based at least in part on the second raster scan.

BACKGROUND

The present invention relates generally to the field of atomic forcemicroscopy, and more particularly to simulating an interaction of amagnetic recording medium and transducing heads at a constantfly-height.

Atomic-force microscopy (AFM) or scanning-force microscopy (SFM) is avery-high-resolution type of scanning probe microscopy (SPM), withdemonstrated resolution on the order of fractions of a nanometer, morethan 1000 times better than the optical diffraction limit. Scanningprobe microscopy (SPM) forms images of surfaces at the atomic levelusing a physical probe that scans a sample. The AFM has three majorabilities: force measurement, imaging, and manipulation. For imaging, animage of the topography (i.e., three-dimensional shape) of a samplesurface at a high resolution forms, based on the reaction of the probeto the forces that the sample imposes on the probe. In manipulation, theforces between the probe and sample can also be used to change theproperties of the sample in a controlled way (e.g., atomic manipulation,scanning probe lithography, local stimulation of cells, etc.).Simultaneous with the acquisition of topographical images, otherproperties (e.g., mechanical properties, electrical properties, etc.) ofthe sample can be measured locally and displayed as an image, often withsimilarly high resolution.

A read/write head (e.g., tape head) is a type of transducer used inconjunction with a magnetic medium for storage of information throughthe conversion of electrical signals to magnetic fluctuations andretrieval through an opposite conversion. The read/write head isseparated from the magnetic medium by a distance known as a flyingheight (e.g., floating height, or head gap). The read/write headconsists of a core of magnetic material arranged in a toroid and anarrow gap filled with a diametric material. When a magnetic flux isforced out through the narrow gap of the read write head into themagnetic medium, the magnetic flux magnetizes the magnetic medium.

SUMMARY

Aspects of the present invention disclose a method, computer programproduct, and system for providing simulation results of an interactionbetween a transducer head and a magnetic medium. The method comprisesone or more computer processors identifying a first raster scan of asample via a scanning probe microscope. The method further comprises oneor more computer processors generating a topography image based on thefirst raster scan of the sample. The method further comprises one ormore computer processors identifying one or more reference featureswithin the created topography image. The method further comprises one ormore computer processors calculating an average height based on theidentified one or more reference features. The method further comprisesone or more computer processors determining a lift distance associatedwith a probe of the scanning probe microscope. The method furthercomprises one or more computer processors defining a uniform plane basedon the calculated average height and the determined lift distance. Themethod further comprises one or more computer processors performing asecond raster scan of the sample based on the defined uniform plane. Themethod further comprises one or more computer processors generating afly-height image based on the second raster scan. The method furthercomprises one or more computer processors providing simulation resultsbased at least in part on the second raster scan.

According to an aspect of the present invention, there is a method,computer program product and/or system that performs the followingoperations (not necessarily in the following order): (i) identifying, bymachine logic, one or more reference features within a topography imageand a range of height values of topographical features associated withthe one or more reference features including a maximum height value;(ii) displaying the topography image to a user; (iii) receiving one ormore selections of one or more reference features within the topographyimage from the user, where the one or more selections includes one ormore rectangles placed by the user, around the one or more referencefeatures; (iv) determining, by machine logic, a lift distance associatedwith a probe of a scanning probe microscope, where the lift distance isbased on: (a) a maximum height of the identified range of height values,and (b) the identified range of height values; (v) defining, by machinelogic, a uniform plane based on the maximum height value and thedetermined lift distance; (vi) performing a modified raster scan of thesample based on the defined uniform plane; and (vii) generating afly-height image based on the modified raster scan.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating an atomic forcemicroscopy environment, in accordance with an embodiment of the presentinvention;

FIG. 2 is a flowchart depicting operational steps of a fly-heightsimulation program, on a computing device within the atomic forcemicroscopy environment of FIG. 1, for simulating the interaction betweena read/write head and a magnetic medium based on a reference fly-heightin accordance with an embodiment of the present invention;

FIG. 3 depicts an example of a path traversed by a probe that maintainsa constant reference fly-height over a topography of a sample thatincludes a scratch in accordance with an embodiment of the presentinvention;

FIG. 4 depicts examples of magnetic sensitivity readings of the samplewith and without incorporating the fly-height simulation program inaccordance with an embodiment of the present invention; and

FIG. 5 is a block diagram of components of the scanning computing deviceexecuting the fly-height simulation program, in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that mapping themagnetic, electrical, and thermal responses of read/write heads, in thepresence of a magnetic medium (e.g., tape media) moving at a fly-heightabove the read/write heads, is desirable in order to simulate actualproduct operation. Embodiments of the present invention recognize themagnetic, electrical, and thermal responses can be obtained by liftingthe probe a defined distance away from the surface, however the actualfly-height is not simulated and includes deficiencies. Deficienciesinclude: not following the exact topography of the read/write head, theactual fly-height does not vary with each line or topography data,setting the fly-height distance based on the median or average of thetopography data, setting the fly-height based on the topography data ofeach scan line in the raster scan, and differences in magnetic amplitudeof a sensor may not be identified. Embodiments of the present inventionidentify a reference feature(s) in a 3D topography map, set a constantfly-height (i.e., sets an actual fly-height based on certain referencefeatures, such as the summits and plateaus, within the 3D topography),and simulate the interaction of the read/write head with the magneticmedium (e.g., sample), thus providing an indication of actual productoperation.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating an atomicforce microscopy environment, generally designated 100, in accordancewith one embodiment of the present invention. FIG. 1 provides only anillustration of one embodiment and does not imply any limitations withregard to the environments in which different embodiments may beimplemented.

In the depicted embodiment, atomic force microscopy environment 100includes scanning computing device 110 and sample 140. Atomic forcemicroscopy environment 100 may include additional computing devices,mobile computing devices, servers, computers, storage devices, or otherdevices not shown.

Scanning computing device 110 may be any electronic device or computingsystem capable of processing program instructions and receiving andsending data. In the depicted embodiment, scanning computing device 110represents a workstation that includes probe 114 and the associatedsoftware programs that operate probe 114 and collect data associatedwith scans. A workstation is a special computer designed for technicalor scientific applications, intended primarily to be used by one user ata time, running multi-user operating systems that that manage computerhardware (e.g. probe 114) and software resources and provides commonservices for computer programs. In some embodiments, scanning computingdevice 110 may be a laptop computer, a tablet computer, a netbookcomputer, a personal computer (PC), a desktop computer, a personaldigital assistant (PDA), a smart phone, or any programmable electronicdevice that includes probe 114 (e.g., self-contained computing devicethat includes an instance of probe 114 that is embedded or a peripheral,computing device directly connected to an atomic force microscope,etc.). In other embodiments, scanning computing device 110 may representa server computing system utilizing multiple computers as a serversystem, such as in a cloud computing environment that connectsseparately to probe 114. For example, a computing device connects over anetwork (not shown) to a separate atomic force microscope that includesprobe 114. In general, scanning computing device 110 is representativeof any electronic device or combination of electronic devices capable ofexecuting machine readable program instructions as described in greaterdetail with regard to FIG. 5, in accordance with embodiments of thepresent invention. Scanning computing device 110 contains user interface112, probe 114, topography image 116, fly-height image 117, fly-heightinteraction results 118, and fly-height simulation program 200 asdepicted and described in further detail with respect to FIG. 5.

User interface 112 is a program that provides an interface between auser and scanning computing device 110, and a plurality of applicationsthat reside on scanning computing device 110. Additionally, in someembodiments, user interface 112 provides an interface between a user ofscanning computing device 110 and a plurality of applications thatreside and/or may be accessed over a network connected to a server orcomputing device (not shown). A user interface, such as user interface112 refers to the information (e.g., graphic, text, sound) that aprogram presents to a user and the control sequences the user employs tocontrol the program. A variety of types of user interfaces exist. In oneembodiment, user interface 112 is a graphical user interfaces. Agraphical user interface (GUI) is a type of interface that allows usersto interact with peripheral devices (i.e., external computer hardwarethat provides input and output for a computing device, such as akeyboard and mouse) through graphical icons and visual indicators asopposed to text-based interfaces, typed command labels, or textnavigation. The actions in GUIs are often performed through directmanipulation of the graphical elements. User interface 112 sends andreceives information through fly-height simulation program 200 toinitiate scans of sample 140 via probe 114.

Probe 114 is a scanning probe associated with a scanning probemicroscope (e.g., atomic force microscope). Probe 114 scans sample 140,which provides raw data that fly-height simulation program 200 utilizesto create topography image 116, fly-height image 117, and fly-heightinteraction results 118. In the depicted embodiment, probe 114 isincluded as part of scanning computing device 110. In anotherembodiment, probe 114 may be separate from scanning computing device110, provided probe 114 is accessible to scanning computing device 110such as over a network (not shown). Probe 114 provides the raw data tofly-height simulation program 200 to create topography image 116,fly-height image 117, and fly-height interaction results 118.

Topography image 116 is an image of the shape and features of thesurface of sample 140 that results from the raster scan of sample 140 byprobe 114. When using probe 114 of scanning computing device 110 (e.g.,integrated computing system and AFM) to image sample 140, the tip ofprobe 114 is brought into contact and/or close proximity (e.g.,nanometers, proximity is measured on an atomic scale) with sample 140,and sample 140 is raster scanned along an x-y grid. At discrete pointsin the raster scan, fly-height simulation program 200 records valuescorresponding to the position of sample 140 with respect to the tip ofprobe 114, and records the height of probe 114 that corresponds to aconstant interaction of probe 114 with sample 140 (e.g., topographicimaging in AFM). The surface topography of sample 140, depicted andstored in topography image 116, is commonly displayed as a pseudo colorplot, derived from a grayscale image that maps each intensity value(e.g., readings from probe 114) to a color according to a table orfunction. The intensity or brightness, is measured on a scale form black(i.e., zero intensity) to white (i.e., full intensity). In the depictedembodiment, topography image 116 resides on scanning computing device110. In another embodiment, topography image 116 may reside on a server,or another computing device connected over a network (not shown)provided topography image 116 is accessible by fly-height simulationprogram 200.

Fly-height image 117 is a three dimensional image of sample 140.Fly-height simulation program 200 creates fly-height image 117 through asecond scan of sample 140 via probe 114 with a set fly-height plane(i.e., constant fly-height that does not vary with the surfacetopography of sample 140). For example a reference height is set by auser and/or fly-height simulation program 200 based on topography image116. The set reference maintains probe 114 at a fixed fly-height thatdoes not allow probe 114 to follow the contours of sample 140 asidentified in topography image 116, and therefore, the actual distancebetween probe 114 and sample 140 is able to change, rather thanmaintaining a variable fly-height which maintains a specified distancebetween probe 114 and sample 140 (i.e., the actual distance betweenprobe 114 and sample 140 does not change as probe 114 follows the actualcontours of sample 140). In the depicted embodiment, fly-height image117 resides on scanning computing device 110. In another embodiment,fly-height image 117 may reside on another computing device or serverconnected over a network (not shown), provided fly-height image 117 isaccessible by fly-height simulation program 200.

Fly-height interaction results 118 include the magnetic measurements,electrical measurements, and/or thermal measurements associated withsample 140 gathered with respect to fly-height image 117. Fly-heightsimulation program 200 analyzes fly-height image 117 to providefly-height interaction results 118. In some embodiments, fly-heightinteraction results may include a comparison between the readingsassociated with topography image 116 and fly-height image 117. In thedepicted embodiment, fly-height interaction results 118 reside onscanning computing device 110. In another embodiment, fly-heightinteraction results 118 may reside on another computing device or serverconnected over a network (not shown), that is accessible by fly-heightsimulation program 200.

Sample 140 is a medium for magnetic recording that stores data on amagnetized medium, utilizing different patterns of magnetization in amagnetisable material. The information stored in sample 140 can beaccessed through one or more read/write heads. In an exemplaryembodiment, sample 140 is a magnetic tape, which is a magnetic mediummade of a thin magnetizable coating on a long, narrow strip of plasticfilm. In another embodiment, sample 140 may be another medium formagnetic recording (e.g., hard disk platters, floppy disks, magneticstrips, etc.). In the depicted embodiment, fly-height simulation program200 scans sample 140 via probe 114, which provides the data (e.g., probe114 readings) that creates topography image 116, fly-height image 117,and fly-height interaction results 118. In another embodiment, anothersoftware program (not shown) associated with the AFM, scans sample 140via probe 114, stores the results for use by fly-height simulationprogram 200 and/or creates topography image 116 and fly-height image117.

Fly-height simulation program 200 is a program for simulating theread/write head (e.g., probe 114, tape head) to magnetic tape (e.g.,sample 140) interaction. Fly-height simulation program 200 identifiesinconsistencies (e.g., increases and decreases in resistance) associatedwith the actual surface of sample 140 that corresponds to data lossassociated with compromised sensors and/or scratches in the magneticmedium of sample 140. In an exemplary embodiment, fly-height simulationprogram 200 includes the capability to initiate scans of sample 140 viaprobe 114 to create topography image 116 and fly-height image 117. Inanother embodiment, fly-height simulation program 200 is a separateprogram that analyzes topography image 116, provides a referencefly-height to a separate program, and initiates the scan of sample 140with the reference fly-height (e.g., actual fly-height) to createfly-height image 117. Additionally fly-height simulation program 200provides fly-height interaction results 118 depicting and/or providingthe magnetic measurements, electrical measurements, and/or thermalmeasurements associated with sample 140. In the depicted embodiment,fly-height simulation program 200 resides on scanning computing device110. In another embodiment, fly-height simulation program 200 may resideon a server, or another computer device connected over a networkprovided, fly-height simulation program 200 has access to probe 114,topography image 116, and fly-height image 117.

FIG. 2 is a flowchart depicting operational steps of a fly-heightsimulation program 200, a program for simulating the interaction betweena read/write head and a magnetic medium based on a reference fly-heightin accordance with an embodiment of the present invention. Prior toinitiating, sample 140 is places in a designated position associatedwith probe 114 of scanning computing device 110. For example sample 140is placed on a stage (e.g., platform surface) that is attached to a xyzdrive which moves the stage that includes sample 140. The tip of probe114 is above sample 140, connected to a cantilever with a piezoelectricelement that oscillates the cantilever. The detector of AFM measures thedeflection (i.e., displacement with respect to the equilibrium position)of the cantilever and converts the deflection into an electrical signalin which the intensity of the electrical signal is proportional to thedisplacement of the cantilever.

In step 202, fly-height simulation program 200 initiates a scan ofsample 140. In one embodiment, fly-height simulation program 200initiates in response to a user action after placing sample 140 in adesignated position associated with probe 114 from which a scan occurs(e.g., first raster scan). In another embodiment, fly-height simulationprogram 200 initiates in response to automatically detecting thepresence of sample 140 placed in the designated position associated withprobe 114. Upon initiation, fly-height simulation program 200 instructsprobe 114 to raster scan sample 140. The raster scan, or rasterscanning, is the rectangular pattern of image capture andreconstruction. In a raster scan, sample 140 is subdivided into asequence of horizontal strips known as scan lines. Each scan linetransmits an analog signal to scanning computing device 110 as probe 114records data from sample 140. In some embodiments, the analog signal maybe further divided into discrete pixels, in which the ordering of thepixels are by rows known as raster order, for further processing byscanning computing device 110. In raster scanning, the beam associatedwith probe 114 sweeps horizontally left-to-right at a slight verticalangle, then sweeps back to the left at a slight vertical angle, and thensweeps out to record the next scan line. Fly-height simulation program200 records the deflection of probe 114 as height data as probe 114makes contact and/or close proximity (e.g., nanometers, proximity ismeasured on an atomic scale) with the surface of sample 140.

In step 204, fly-height simulation program 200 creates a topography of asample (e.g., generates topography image 116). After completion of theraster scanning, fly-height simulation program 200 utilizes the rasterscans (i.e., individual line scans of sample 140) to represent thesurface topography of sample 140 as topography image 116 (i.e.fly-height simulation program 200 combines all of the height dataassociated with each scan line to form topography image 116) as a pseudocolor image. For example, fly-height simulation program 200 recombinesthe raster scans as a grayscale image. Fly-height simulation program 200maps an intensity value associated with each data point of theindividual raster scans to a color according to a table or function,thereby creating topography image 116. Within topography image 116,fly-height simulation program 200 depicts data points with a lowerheight (e.g., valleys, troughs, etc.) with a darker color (e.g., lowerintensity, black), and depicts data points with a higher height (i.e.,peaks, plateaus, etc.) and a lighter color (e.g., higher intensity,white) within the grayscale image. Additionally areas associated with adarker color within topography image 116 represent areas in which theoverall fly-height is higher, and areas associated with a lighter colorrepresent areas in which the overall fly-height is lower. For examplefly-height simulation program 200 determines probe 114 maintains afly-height of 20 nanometers when sample 140 is consistent and thusdepicts a dark gray to black color, but fly-height simulation program200 determines probe 114 drops to an overall fly-height of 10 nanometerwhen a scratch (e.g., pit, divot, etc.) is present in sample 140 andthus depicts a light gray or white color within topography image 116.

In step 206, fly-height simulation program 200 identifies referencefeatures within topography image 116. In one embodiment, fly-heightsimulation program 200 identifies one of more references withintopography image 116 based on receiving selections from a user viewingtopography image 116 via user interface 112. In another embodiment,fly-height simulation program 200 selects reference features withintopography image 116 based on predefined characteristics. Fly-heightsimulation program 200 receives features from a user and/orautomatically through selections made by fly-height simulation program200 that identify areas within topography image 116 that include highcontrasts. Fly-height simulation program 200 draws one or morerectangles around black areas within topography image 116 thatcorrespond to maximum fly-height distances, and one or more rectanglesaround white areas within topography image 116 that indicates minimumfly-height distances within topography image 116. In one embodiment, thesize of the rectangles are selectable by the user and/or fly-heightsimulation program 200 based on predefined settings. For example,fly-height simulation program 200 selects data points within topographyimage 116 that surround the highest and lowest intensity grayscalevalues by a specified distance, grayscale value variation, and orpercentage of the maximum and/or minimum grayscale value. In anotherembodiment, the rectangles are fixed sizes based on the predefinedsettings within fly-height simulation program 200. For example therectangle may include one or more sizes to encompass varying degrees ofarea within topography image 116 (e.g., small, medium, large, set numberof pixels, etc.).

In step 208, fly-height simulation program 200 calculates a height basedon the selected reference features. Fly-height simulation program 200retrieves the height values associates with the individual data pointswithin the identified reference features of topography image 116. Forexample, fly-height simulation program 200 extracts the correspondingdata values (e.g., heights) of the areas within the identifiedrectangles, thereby identifying maximum and minimum distances betweenprobe 114 and sample 140 represented within topography image 116. In oneembodiment, fly-height simulation program 200 identifies the maximumheight within the identified rectangles and sets the height to themaximum height value (e.g., peak reference feature height). In anotherembodiment, fly-height simulation program 200 calculates an average(e.g. mean) value of the height associated with the identified referencefeatures. In yet some other embodiment, fly-height simulation programidentifies a median value within the reference sets for the height.Fly-height simulation program 200 organizes the heights associated withthe reference sets from highest to lowest. Fly-height simulation program200 identifies the middle height value within the data set of heights asthe height.

In step 210, fly-height simulation program 200 determines a liftdistance associated with probe 114. The lift distance is an additionaloffset (i.e., value) above the identified reference features thatsimulates sample 140 (e.g., tape media) flying over the read/write head.In one embodiment, fly-height simulation program 200 receives a liftdistance from the user of scanning computing device 110 via userinterface 112. In another embodiment, fly-height simulation program 200determines a lift distance based on the type of medium associated withsample 140. For example, the lift distance associate with magnetic tapemedium may be a different lift distance than the lift distanceassociated with a hard drive. In some other embodiment, fly-heightsimulation program 200 utilizes a preset lift distance (e.g., standardlift distance) that is not dependent on sample 140. In yet anotherembodiment, fly-height simulation program 200 determines a lift distancebased on the peak height within the reference features and/or thecalculated average height (i.e., sets the lift distance so thecombination of the calculated height and the lift distance are greaterthan the peak reference height).

In step 212, fly-height simulation program 200 defines a uniform plane.Fly-height simulation program 200 calculates a lift distance for eachdata point within topography image 116. The uniform plane allowsvariations in the overall height distance between probe 114 and sample140 to maintain a set actual fly-height (i.e., position of probe 114 isfixed) above sample 140 rather than varying the position of probe 114and following the contours of sample 140 to maintain a set separationdistance (i.e., position of probe 114 varies). For example, in aninstance that fly-height simulation program 200 defines the uniformplane, the actual fly-height is set at 3 nanometers, but the distancebetween probe 114 and sample 140 varies between 3 and 4 nanometersacross sample 140, the increased distances indicate scratches or pits inthe surface of sample 140 (e.g., tape medium). Conversely, in aninstance that fly-height simulation program 200 does not include theuniform plane, but utilizes a fixed separation distance, the fly-heightremains constant at 3 nanometers and probe 114 moves closer to sample140 upon encountering a scratch or pit in the surface of sample 140 tomaintain a constant fly-height separation of 3 nanometers.

In step 214, fly-height simulation program 200 initiates a scan ofsample 140 based on the defined uniform plane (step 212). Fly-heightsimulation program 200 utilizes the uniform plane with the calculateddata values to provide the scan profile that guides probe 114 oversample 140 (i.e., probe 114 maintains a fixed position by setting anactual fly-height) for the raster scan (e.g., second raster scan). Asdepicted in FIG. 3, fly-height simulation image 300 (e.g., fly-heightimage 117), the path of probe 114 follows uniform plane 302 (i.e., fixedactual fly-height in which the actual distance varies) above sample 140.Sample 140 includes wafer or wafer substrate (e.g., substrate 304),undercoat layer (e.g., UC 306), shield 1 layer (e.g., S1 308), scratch310, magnetoresistive sensor (e.g., MR 312), shield 2 layer (e.g., S2314), overcoat layer (OC 316), and wafer or wafer substrate closure(e.g., closure 318). Substrate 304 and closure 318 are at the sameheight level within sample 140, which additionally corresponds toreference features (e.g., reference feature 320) identifying the peakheight within sample 140. UC 306 and OC 316 are at the same height levelwithin sample 140. S1 308, scratch 310, and S2 314 are the same heightlevel within sample 140. However, the area encompassed by scratch 310should be at the same height level as MR 312 within sample 140. Asfly-height simulation program 200 raster scans sample 140, with thefixed fly-height in the uniform plane, the scan lines combine to createthe three dimensional representation of sample 140 as fly-heightsimulation image 300. Fly-height simulation program 200 measures forces(e.g., magnetic, electrical, thermal, etc.) received by probe 114,thereby simulating the interactions of a read/write head with sample140. Fly-height simulation program 200 records the forces, (e.g.,increases and decreases) in the amplitude. Fly-height simulation program200 identifies decreases in the amplitude as signal loss (e.g., dataloss) which corresponds with scratch 310.

Fly-height simulation program 200 additionally creates fly-heightinteraction results 118 based on the received forces from the scan ofsample 140. In one embodiment, fly-height simulation program 200 createsa graph of the forces recorded by probe 114 as depicted in FIG. 4,fly-height interaction results comparison 400. Fly-height interactionresults 402 depict the forces measured by probe 114 with respect tosample 140 in an instance in which the fly-height distance is constant(i.e., allows probe 114 to raise and lower, following the contours ofsample 140). Fly-height interaction results 404 depicts the forcesmeasure by probe 114 that would actually occur between the read/writehead and sample 140 (i.e., probe 114 maintains a fixed position in whichthe actual distance between probe 114 and sample 140 varies, thussimulating an actual interaction of the read/write head and sample 140).In another embodiment, fly-height simulation program 200 creates a filethat includes the data points and recorded force values (e.g., raw data)for viewing and/or graphing.

In step 216, fly-height simulation program 200 provides results (e.g.,topography image 116 and fly-height interaction results 118) to theuser. In one embodiment, fly-height simulation program 200 providesresults to the user from which the user interprets and identifies areaswithin sample 140 that result in failures. In another embodiment,fly-height simulation program 200 analyzes topography image 116 andfly-height interaction results 118, and identifies areas withintopography image 116 and fly-height interaction results 118 that resultin failures. For example, fly-height simulation program 200 highlightsor circles areas of high contrast in the greyscale pseudo color oftopography image 116, and compares changes in sensitivity readings infly-height interaction results 118 (e.g., large variations indicate afailure). Based on analysis of the provided results by fly-heightsimulation program 200 and/or the user, the user can then fix the sourceof the failure.

For example, in a visual side by side comparison of fly-heightinteraction results 402 and fly-height interaction results 404 asdepicted in FIG. 4, fly-height interaction results 402 indicate higherreadings (e.g., increased sensitivity readings) than fly-heightinteraction results 404 (e.g., decrease sensitivity readings) associatedwith sample 140. The difference between fly-height interaction results402 and fly-height interaction results 404 can be attributed to pathloss (e.g., data loss, signal loss, etc.). Path loss or pathattenuation, is the reduction in power density (i.e., attenuation) of anelectromagnetic wave as the wave propagates through space. For example,the greater the distance over which the signal travels the lower theamplitude of the signal received at probe 114, as depicted by fly-heightinteraction results 402, and the converse in fly-height interactionresults 402. The sensitivity readings in fly-height interaction results404 indicate a compromise in the magnetoresistive sensor (e.g., MR 312)due to scratch 310, which the sensitivity readings in fly-heightinteraction results 402 mask. The user can then replace the scratchedmagnetoresistive sensor (e.g., MR 312) to prevent subsequent errors.

FIG. 5 depicts a block diagram of components of scanning computingdevice 500 in accordance with an illustrative embodiment of the presentinvention. It should be appreciated that FIG. 5 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be made.

Scanning computing device 500 includes communications fabric 502, whichprovides communications between cache 516, memory 506, persistentstorage 508, communications unit 510, and input/output (I/O)interface(s) 512. Communications fabric 502 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric502 can be implemented with one or more buses or a crossbar switch.

Memory 506 and persistent storage 508 are computer readable storagemedia. In this embodiment, memory 506 includes random access memory(RAM) 514. In general, memory 506 can include any suitable volatile ornon-volatile computer readable storage media. Cache 516 is a fast memorythat enhances the performance of computer processor(s) 504 by holdingrecently accessed data, and data near accessed data, from memory 506.

User interface 112, topography image 116, fly-height simulation image117, fly-height interaction results 118, and fly-height simulationprogram 200 may be stored in persistent storage 508 and in memory 506for execution and/or access by one or more of the respective computerprocessor(s) 504 via cache 516. In an embodiment, persistent storage 508includes a magnetic hard disk drive. Alternatively, or in addition to amagnetic hard disk drive, persistent storage 508 can include asolid-state hard drive, a semiconductor storage device, a read-onlymemory (ROM), an erasable programmable read-only memory (EPROM), a flashmemory, or any other computer readable storage media that is capable ofstoring program instructions or digital information.

The media used by persistent storage 508 may also be removable. Forexample, a removable hard drive may be used for persistent storage 508.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage508.

Communications unit 510, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 510 includes one or more network interface cards.Communications unit 510 may provide communications through the use ofeither or both physical and wireless communications links. Userinterface 112, topography image 116, fly-height simulation image 117,fly-height interaction results 118, and fly-height simulation program200 may be downloaded to persistent storage 508 through communicationsunit 510.

I/O interface(s) 512 allows for input and output of data with otherdevices that may be connected to scanning computing device 500. Forexample, I/O interface(s) 512 may provide a connection to externaldevice(s) 518, such as a keyboard, a keypad, a touch screen, and/or someother suitable input device. External devices 518 can also includeportable computer readable storage media such as, for example, thumbdrives, portable optical or magnetic disks, and memory cards. Softwareand data used to practice embodiments of the present invention, e.g.,User interface 112, topography image 116, fly-height simulation image117, fly-height interaction results 118, and fly-height simulationprogram 200, can be stored on such portable computer readable storagemedia and can be loaded onto persistent storage 508 via I/O interface(s)512. I/O interface(s) 512 also connect to a display 520.

Display 520 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer-implemented method (CIM) comprising:identifying, by machine logic, one or more reference features within atopography image and a range of height values of topographical featuresassociated with the one or more reference features including a maximumheight value; displaying the topography image to a user; receiving oneor more selections of one or more reference features within thetopography image from the user, where the one or more selectionsincludes one or more rectangles placed by the user, around the one ormore reference features; determining, by machine logic, a lift distanceassociated with a probe of a scanning probe microscope, where the liftdistance is based on: (i) a maximum height of the identified range ofheight values, and (ii) the identified range of height values; defining,by machine logic, a uniform plane based on the maximum height value andthe determined lift distance; performing a modified raster scan of thesample based on the defined uniform plane; and generating a fly-heightimage based on the modified raster scan.
 2. The CIM of claim 1, furthercomprising: identifying, by machine logic, a first raster scan of asample via a scanning probe microscope; and generating, by machinelogic, the topography image based on the first raster scan of thesample.
 3. The CIM of claim 2, wherein identifying the one or morereference features within the generated topography image furthercomprises: selecting, by machine logic, one or more intensity valueswithin the topography image based on the first raster scan based on oneor more of the following: identifying, by machine logic, one or more ahigh intensity values that corresponds to low heights within the createdtopography image based on the first raster scan; and identifying, bymachine logic, one or more low intensity values that corresponds to highheights within the created topography image based on the first rasterscan.
 4. The CIM of claim 1 wherein: the topography image is based onbased on a first raster scan; and the topography image is a pseudo colorimage representing a surface topography of the sample based on ameasurement of intensity values of received forces between the probe ofthe scanning probe microscope and the sample.
 5. The CIM of claim 1wherein the lift distance is an additional offset above the maximumheight of the identified range of height values that simulates thesample flying over a transducer head.
 6. The CIM of claim 1, whereindefining the uniform plane based on the maximum height value and thedetermined lift distance further comprises: calculating, by machinelogic, an actual fly-height wherein the actual fly-height combines themaximum height value and the determined lift distance; and calculating,by machine logic, a lift distance for each data point within thetopography image based on the first raster scan of the sample based onthe calculated actual fly-height, wherein the lift distance for eachdata point identifies a difference between the height of each data pointand the actual fly-height to maintain the uniform plane.
 7. The CIM ofclaim 1, further comprising: providing simulation results based at leastin part on the second raster scan, including: displaying the topographyimage and the fly-height image, and identifying, by machine logic, oneor more failures based on a comparison of sensitivity values of thetopography image and the fly-height image to identify variations.
 8. Acomputer program product (CPP) comprising: one or more non-transitorycomputer readable storage media; and computer code stored on the one ormore non-transitory computer readable storage media, with the computercode including program instructions for causing one or more computerprocessor(s) to perform operations including the following: identifying,by machine logic, one or more reference features within a topographyimage and a range of height values of topographical features associatedwith the one or more reference features including a maximum heightvalue, displaying the topography image to a user, receiving one or moreselections of one or more reference features within the topography imagefrom the user, where the one or more selections includes one or morerectangles placed by the user, around the one or more referencefeatures, determining, by machine logic, a lift distance associated witha probe of a scanning probe microscope, where the lift distance is basedon: (i) a maximum height of the identified range of height values, and(ii) the identified range of height values, defining, by machine logic,a uniform plane based on the maximum height value and the determinedlift distance, performing a modified raster scan of the sample based onthe defined uniform plane, and generating a fly-height image based onthe modified raster scan.
 9. The CPP of claim 8, wherein the computercode further includes instructions for causing the processor(s) set toperform the following operations: identifying, by machine logic, a firstraster scan of a sample via a scanning probe microscope; and generating,by machine logic, the topography image based on the first raster scan ofthe sample.
 10. The CPP of claim 9, wherein identifying the one or morereference features within the generated topography image furthercomprises: selecting, by machine logic, one or more intensity valueswithin the topography image based on the first raster scan based on oneor more of the following: identifying, by machine logic, one or more ahigh intensity values that corresponds to low heights within the createdtopography image based on the first raster scan, and identifying, bymachine logic, one or more low intensity values that corresponds to highheights within the created topography image based on the first rasterscan.
 11. The CPP of claim 8 wherein: the topography image is based onbased on a first raster scan; and the topography image is a pseudo colorimage representing a surface topography of the sample based on ameasurement of intensity values of received forces between the probe ofthe scanning probe microscope and the sample.
 12. The CPP of claim 8wherein the lift distance is an additional offset above the maximumheight of the identified range of height values that simulates thesample flying over a transducer head.
 13. The CPP of claim 8, whereindefining the uniform plane based on the maximum height value and thedetermined lift distance further comprises: calculating, by machinelogic, an actual fly-height wherein the actual fly-height combines themaximum height value and the determined lift distance; and calculating,by machine logic, a lift distance for each data point within thetopography image based on the first raster scan of the sample based onthe calculated actual fly-height, wherein the lift distance for eachdata point identifies a difference between the height of each data pointand the actual fly-height to maintain the uniform plane.
 14. The CPP ofclaim 8, further comprising: providing simulation results based at leastin part on the second raster scan, including: displaying the topographyimage and the fly-height image, and identifying, by machine logic, oneor more failures based on a comparison of sensitivity values of thetopography image and the fly-height image to identify variations.
 15. Acomputer system (CS) comprising: one or more computer processor(s); oneor more non-transitory computer readable storage media; and computercode stored on the one or more non-transitory computer readable storagemedia, with the computer code including program instructions for causingthe one or more computer processor(s) to perform operations includingthe following: identifying, by machine logic, one or more referencefeatures within a topography image and a range of height values oftopographical features associated with the one or more referencefeatures including a maximum height value, displaying the topographyimage to a user, receiving one or more selections of one or morereference features within the topography image from the user, where theone or more selections includes one or more rectangles placed by theuser, around the one or more reference features, determining, by machinelogic, a lift distance associated with a probe of a scanning probemicroscope, where the lift distance is based on: (i) a maximum height ofthe identified range of height values, and (ii) the identified range ofheight values, defining, by machine logic, a uniform plane based on themaximum height value and the determined lift distance, performing amodified raster scan of the sample based on the defined uniform plane,and generating a fly-height image based on the modified raster scan. 16.The CS of claim 15, wherein the computer code further includesinstructions for causing the processor(s) set to perform the followingoperations: identifying, by machine logic, a first raster scan of asample via a scanning probe microscope; and generating, by machinelogic, the topography image based on the first raster scan of thesample.
 17. The CS of claim 16, wherein identifying the one or morereference features within the generated topography image furthercomprises: selecting, by machine logic, one or more intensity valueswithin the topography image based on the first raster scan based on oneor more of the following: identifying, by machine logic, one or more ahigh intensity values that corresponds to low heights within the createdtopography image based on the first raster scan, and identifying, bymachine logic, one or more low intensity values that corresponds to highheights within the created topography image based on the first rasterscan.
 18. The CS of claim 15 wherein: the topography image is based onbased on a first raster scan; and the topography image is a pseudo colorimage representing a surface topography of the sample based on ameasurement of intensity values of received forces between the probe ofthe scanning probe microscope and the sample.
 19. The CS of claim 15,wherein defining the uniform plane based on the maximum height value andthe determined lift distance further comprises: calculating, by machinelogic, an actual fly-height wherein the actual fly-height combines themaximum height value and the determined lift distance; and calculating,by machine logic, a lift distance for each data point within thetopography image based on the first raster scan of the sample based onthe calculated actual fly-height, wherein the lift distance for eachdata point identifies a difference between the height of each data pointand the actual fly-height to maintain the uniform plane.
 20. The CS ofclaim 15, further comprising: providing simulation results based atleast in part on the second raster scan, including: displaying thetopography image and the fly-height image, and identifying, by machinelogic, one or more failures based on a comparison of sensitivity valuesof the topography image and the fly-height image to identify variations.